05 プログラミング初学者の課題解決方針の立案能力を高める選択肢タップ式学習支援システム
岡大貴(神戸大),大西鮎美(神戸大),西田健志(神戸大),寺田努(神戸大),塚本昌彦(神戸大)
https://scrapbox.io/files/656589eb1021b8001cecd002.png
論文:
要旨:
初学者にとってプログラミング学習はつまずきの連続であり、プログラムを使った課題解決の方針立案や、解決方針のプログラムコードとしての実装が難しいことが学習障壁となっている。そこで本研究では、プログラミングを「課題解決方針の立案」と「解決方針のコーディング」に分離し、学習者を前者に専念させることで高速に試行錯誤させ、課題の解決方針を立案する能力を高める学習システムを提案する。提案システムのプロトタイプを利用することで、プログラム課題に取り組む際にどのような効果が得られるかを調査した。
採録時コメント:
具体的なプログラミング言語でのコーディングより前に、自然言語で解決方針・手順を立案することが重要であり、少ない選択肢から選び、誤りに気づいたらすぐ手戻りするという試行錯誤を行う、というアイデアは興味深く、新規性も認められます。しかしながら、試行錯誤の高速化がどのように達成されているのか、学習者がどのような気づきを得て選択肢を修正するのかが不明瞭なことと、最初に自然言語で検討することをかえって難しく感じてしまう初学者もいるのではないかといったことが査読者間および判定会議で議論となりました。結果として、本論文は議論枠での採録となりました。発表に当たっては、学習者がどのように選択肢を操作し、どのような表示を見て誤りに気づいて修正するのか、具体的な操作が分かるようにご留意ください。
参加者メモ・コメント:
このシステムは,実際の大学生のプログラミングの授業で使われていますteradatsutomu.icon
講義をした西田です 西田健志.icon
補足:文系大学生・選択科目(大変すぎる・難しすぎると履修キャンセル続出する世界観)
(ChatGPTがあるので)課題解決の方針を自然言語で書けたら、もはやコードは手に入ったも同然と言えそうteramotodaiki.icon
実はそこにギャップがあるんじゃないか,という感じでして・・.
ChatGPTにコード書かせるだけのリテラシを養う、という視点で考えると良さそうですね。小中高の情報の授業とかもそこから始めれば良いのかも?𥱋瀨洋平.icon
+1 hiraki.iconteramotodaiki.icon
最近の若い人はスマホでプログラム入力するのか…(フリックなの?) > おしえてわかいひと
うちの高専(主に15~20歳)では流石にほぼ見ないですね。。。ただ、最近の世代は小中学校でもPCではなくタブレットなので、うちに来て初めてキーボードに触れる子がかなり多い(5~7割くらい)です…!rtakada.icon
彼らはアルファベットもフリックで入れるんですか? それとも qwerty?
アルファベットもフリック入力する学生はいます。ただqwertyの方が多いかも…?ちなみに自分は普段フリックでアルファベット入力までします(把持方法を替えたくないので)rtakada.icon
記号は?(記号面に切り替え?)
切り替えですねrtakada.icon
chatgptとかあるのにそんなにプログラミング人口が増えていないように(個人的には)見える、ところになんらかの障壁があるんだろうなと思っていますhiraki.icon
今つらいことの多くは環境構築なのかも? narumi.icon
これはかなりありそうな気がします(jupyter与えて親に教えたけどそもそも何をすべきかわかっていなかった)hiraki.icon
「環境構築辛い」は間違いなくありそう。Pythonとか𥱋瀨洋平.icon
そもそもchatgpt使ったことある人が一般社会的にどれくらいいるのかという感も…
ものを作りたい!とかいう意欲がないのもあるかもしれないですね。現代便利すぎて。Tatsuya NAGASAWA.icon
確かにそうですね.. プログラミングじゃないと達成できないけど、作ると役立つ、かつそこまで難しくないコンテンツが求められている・・hiraki.icon
選択肢がリスト形式で提示されていますが、持ってるデータ的にはフローチャート風(ノード形式)でも提示できそう?nishiyama.icon
フローチャートで実現すれば「ノーマルエンド」「トゥルーエンド」とかを実現できる(実装方法の良し悪しを議論できる)narumi.icon
最終的には,ツリー構造的な感じで「あなたの選択」が表示されるようになってますteradatsutomu.icon
最終的に表示なるほど!nishiyama.icon
matsumur.icon 正解(あるいは間違えの選択肢)をどう定義しているのだろう?どうやって問題を解いてもいい気がするので...
matsumur.icon質疑を聞いていてわかりました。でも、そうすると、正解までの道筋分だけ質問を作らないといけない気がして、組み合わせが膨大になりそう??
そうそう,なので,問題作成はたいへん.試行錯誤によって結果がどう変わるのかとかのバリエーションたくさんないといけないし・・.ただ,この問題作成の部分をAIに任せられるんではないか,という話もしてますteradatsutomu.icon
なるほど。AI使うのはうまくできそう。
いろんな回答方法がありそう。さっきの例だと、大きい赤丸塗りつぶしで書いて、小さい青丸塗りつぶしで書いて、そのあと白い線の円をループで書いていくとかもあるし。miuramo.icon
聞き逃したかもなんですけど、間違った選択肢を選んだ時に、間違った出力が出てきて、答えと違うけどどこが違うのか考えることができたら面白そうです。
そうなってます!コーディングせずに結果だけ見て,やっぱちがうや,と戻って別の選択肢選んで,みたいなのをイメージしてますteradatsutomu.icon
一つのコンテンツを作るのにどのぐらい手間がかかりますか?(結構大変そうな気がする)
実はめちゃくちゃ大変です 今のところひとつひとつ職人が手作りしています西田健志.icon
簡単にする方法募集中です
このコンテンツもChatGPTで作れそうだなと思いました。「〜〜〜というプログラミングの問題があります。この問題をステップバイステップで解いてください。それぞれのステップで選択肢を4つ提示し、うち3つは初学者がしてしまいそうな間違いと、その選択肢が間違っている理由も解説してください」みたいな感じですteramotodaiki.icon
ありがとうございます。論文にならない試行錯誤の範囲では試してみたそうですが、そんなにうまくはいっていないみたいなので、ChatGPT職人の方うまくいったら教えてください!
既に使ってるかもですが、プロンプトどうこうより、課金してGPT-4を使うのが一番重要です!wteramotodaiki.icon
岡くんがChatGPT下手なのかな…苦笑西田健志.icon
被験者が神戸大の学生さんなので、プログラミング初心者でも(世の中の平均と比べて)理解度は高いという傾向はありそうですね
スマホでプログラミングするって今後はいかにもありそう(僕の科目でも普段PCで授業を受けているのにオンライン試験だけスマホで文字入力して提出する人はザラにいました)
最近の小中学校で行われてるプログラミング学習ってコード書くというよりアルゴリズム的な考え方を学ぶことに焦点が置かれてると思うんですけど、このシステムはそういうタスクに対してすごく役に立ちそうだと思いました。
逆にコードを書けるようにするという目標だとコードの書き方は教えてないよね、という突っ込みが入りそう...
図形描画APIがわからないと、方針立てられない、ってことはないですかね?miuramo.icon
競プロなどのよりアルゴリズム力が必要になる対象でも利用価値が高そう
コメントです。選択肢を提示して正しい回答に導くのも良いですが、プログラミング学習において重要なのは、むしろ失敗を繰り返すことかも知れません。すぐに間違いだと指摘せず、そのコードの結果を出力し、学習者に自ら「これは間違いだった」と自覚させる仕掛けがあると良いのではないかと思いましたteramotodaiki.icon
「まず何からしたらいいかさっぱりわかりません」がスタートなので、少数の選択肢があるとまずスタートが切れるかなという気持ちです。Scratchを与えたとしても「まず何からしたらいいかさっぱりわかりません」となるくらいの状況。失敗を繰り返すのは、まずスタートを切った後かな、という気持ちです。西田健志.icon
質疑応答:
このシステムは、初学者がテキストプログラミングでゼロからコードを書けるようになることを目指しているのでしょうか?teramotodaiki.icon
A. 最終的にはそこを目指している。このアプリは課題に対して方針をどう立てるかに注力している
お絵かき以外のプログラムでできるできない対象などあるでしょうか?
出力を見比べて考えられる課題であれば,適用できるかなと考えています.現状,数値の配列の合計や平均を求めるという課題で,コンソール出力をそのまま出しているのですが,このような場合グラフィカルな出力がないぶん,アルゴリズム上の違いを可視化する必要があるかなと考えています.Hiroki Oka.icon